#ifndef __THREAD_H__
#define __THREAD_H__

#include"sceneObject.h"

class Thread:public SceneObject{
	private:
		static const float maxThreadLong;
		static const float minThreadLong;
	public:
        Thread(const Cube& threadCube, const Cube& clampCube, const Point& direction,const std::map<std::string,ObjectModelPtr>& models);
        ~Thread();

        void timeStep();

        void setModelMatrix();
        void setSubModelMatrix(const std::string& name="");
        void setDirection(const Point& point);
        void rotate(float angle);
        void move(float dx,float dy,float dz);

        void extend(float offset);
        void shrink(float offset);

        static std::string name(){
        	return "thread";
        }
};


#endif //__THREAD_H__

